package com.egao.common.module.world.entity;

import cn.hutool.core.date.DatePattern;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 济世杯
 * @author root
 */
@ApiModel(description = "济世杯")
@Data
@TableName("world_game")
public class WorldGame implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty("承办人用户id")
    private Integer userId;

    @ApiModelProperty(value = "是否发布 0发布 1关闭", notes = "校级添加时为关闭，由承办人来控制,发布后前端才可见")
    private String releaseState;

    @ApiModelProperty(value = "学生报名后是否需要审核 0需要 1不需要", notes = "需要学生报名为待审核状态，不需要则为报名成果状态")
    private String checkState;

    @ApiModelProperty("学生报名是否需要上传附件 0需要，1不需要")
    private String worldState;

    @ApiModelProperty("标题")
    private String title;

    @ApiModelProperty("开始时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date startTime;

    @ApiModelProperty("结束时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date endTime;

    @ApiModelProperty("截止报名时间")
    @JsonFormat(pattern = DatePattern.NORM_DATETIME_PATTERN)
    private Date closeTime;

    @ApiModelProperty("报名人数限制")
    private Integer number;

    @ApiModelProperty("举办地点")
    private String address;

    @ApiModelProperty("封面图")
    private String imgUrl;

    @ApiModelProperty("点击量")
    private Integer hits;

    @ApiModelProperty("内容")
    private String content;

    @ApiModelProperty("添加人")
    private Integer createBy;

    @ApiModelProperty("添加时间")
    private Date createTime;

    @ApiModelProperty("修改时间")
    private Date updateTime;

    @ApiModelProperty("逻辑删除 0正常 1删除")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty("创建人姓名")
    @TableField(exist = false)
    private String createByName;

    @ApiModelProperty("报名成功人数")
    @TableField(exist = false)
    private Integer studentCount;

    @ApiModelProperty("报名取消人数")
    @TableField(exist = false)
    private String studentCancelCount;

    @ApiModelProperty("报名待审核人数")
    @TableField(exist = false)
    private String studentWaitCount;

    @ApiModelProperty("承办人姓名")
    @TableField(exist = false)
    private String name;


}
